#include <stdint.h>
#include <semaphore.h>
typedef struct TClientes{
	char Nombre[20];
	int32_t Sock;
}TClientes;

typedef struct TNodoCola{		
		char idDescriptor[16];   // ID UNICO DEL MENSAJE DE RED
		int32_t SocketT;           	 // SOCKET DEL CLIENTE QUE REALIZO LA PETICION
		char TipoPeticion;		 // LECTURA("0") O ESCRITURA ("1")
		char Peticion[1100];
		int32_t EstaProcesado;
		int32_t enviado;
	struct TNodoCola *Next;
}TNodoCola;

typedef struct TColaPetic{
		TNodoCola *Head;
		TNodoCola *Tail;
}TColaPetic;


typedef struct TNodoW{
	char idDescriptor[16];   // ID UNICO DEL MENSAJE DE RED
	char payload[1100];
	int32_t SockT;
	struct TNodoW * Next;
}TNodoW;

typedef struct TColaW{
	TNodoW *Head;
	TNodoW *Tail;
}TColaW;



typedef struct TPlanificador{
	char Nombre[20];
	int32_t Sock;
	int32_t Sincro;
	sem_t Sem;
	int32_t CantPetic;
	int32_t Desfasaje;
	int32_t Prioridad;
	sem_t ParaSincro;
	int32_t CantSincro;
	pthread_mutex_t Mutex;
	pthread_mutex_t MutexW;
	TColaPetic *Cola;
	TColaW *ColaW;
}TPlanificador;

typedef struct TNodoG{
	char idDescriptor[16];   // ID UNICO DEL MENSAJE DE RED
	int32_t Enviada;
	struct TNodoG * Next;
}TNodoG;



typedef struct TColaG{
	TNodoG *Head;
	TNodoG *Tail;
}TColaG;



	























